package cn.model;

import cn.constant.ContractConstant;
import cn.constant.TokenOrderConstant;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.math.BigDecimal;
import java.util.Date;

@EqualsAndHashCode(callSuper = true)
@Data
@TableName(value = "t_warehouse")
public class Warehouse extends Model<Warehouse> {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 交易对
     */

    private String pairsName;
    /**
     * 币种
     */

    private String coinName;
    /**
     * 主币名称
     */
    private String mainCur;
    /**
     * 保证金
     */
    private BigDecimal margin;
    /**
     * 未实现盈亏
     */
    private BigDecimal unProfitLoss;
    /**
     * 收益
     */
    private BigDecimal profit;
    /**
     * 收益率
     */
    private BigDecimal profitUp;
    /**
     * 仓位总价
     */
    private BigDecimal tokenPrice;
    /**
     * 仓位总数
     */
    private BigDecimal tokenNum;
    /**
     * 仓位可用数
     */
    private BigDecimal isTokenNum;
    /**
     * 杠杆倍数
     */
    private BigDecimal avgLevel;
    /**
     * 总手数
     */
    private BigDecimal hands;
    /**
     * 总单数
     */
    private BigDecimal orders;
    /**
     * 仓位均价
     */
    private BigDecimal avePrice;

    /**
     * 强平价格
     */
    private BigDecimal forcePrice;

    /**
     * 预估强平价格
     */

    private BigDecimal closePrice;
    /**
     * 止盈价格
     */

    private BigDecimal triggerPrice;
    /**
     * 止损价格
     */

    private BigDecimal ordPrice;
    /**
     * 用户
     */

    private String member;
    /**
     * 交易类型
     */

    private ContractConstant.Trade_Type tradeType;
    /**
     * 交易类型
     */

    private TokenOrderConstant.Order_State state;
    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;
    /**
     * 修改时间
     */
    @TableField("update_time")
    private Date updateTime;
}
